"""
import jsonschema
jsonschema.validate(实际结果的字典内容， schema校验规则的字典数据)
jsonschema.validate(instance, schema)
- instance： 要验证的JSON数据
- schema： 用于校验JSON数据的验证规则


需求： 测试ihrm登录接口-登录成功
要求： 全量校验接口返回结果（ data字段为字符串， 其他字段进行值匹配）
"""
import unittest
import requests
import jsonschema

class TestLogin(unittest.TestCase):
    def test_login_ok(self):
        print('登录成功')

        # 1 测试数据
        body = {"mobile": "13800000002",
                "password":"123456"}
        # 2 发送请求 获取响应对象
        url = 'http://ihrm-test.itheima.net/api/sys/login'
        resp = requests.post(url,json=body)
        # 3 打印响应内容的json格式
        json_data = resp.json()
        print(f'实际结果：{json_data}')
        # 4 定义jsonschema预期校验规则
        expect_schema = {
            "type": "object",
            "properties": {
                "success": {"const": True},
                "code": {"const": 10000},
                "message": {"pattern": "成功"},
                "data": {"type": "string"}
            },
            "required": ["success", "code", "message", "data"]
        }
        # 5 jsonschema.validate(实际结果的字典内容， schema校验规则的字典数据)
        jsonschema.validate(json_data, expect_schema)
